
ax = ax or {}

ax.SPRITE_INDEX_NOT_INITIALIZED = 0xffffffff
ax.TMX_ORIENTATION_HEX  = 0x1
ax.TMX_ORIENTATION_ISO  = 0x2
ax.TMX_ORIENTATION_ORTHO    = 0x0
ax.Z_COMPRESSION_BZIP2  = 0x1
ax.Z_COMPRESSION_GZIP   = 0x2
ax.Z_COMPRESSION_NONE   = 0x3
ax.Z_COMPRESSION_ZLIB   = 0x0
ax.BLEND_DST    = 0x303
ax.BLEND_SRC    = 0x1
ax.DIRECTOR_IOS_USE_BACKGROUND_THREAD   = 0x0
ax.DIRECTOR_MAC_THREAD  = 0x0
ax.DIRECTOR_STATS_INTERVAL  = 0.1
ax.ENABLE_BOX2_D_INTEGRATION    = 0x0
ax.ENABLE_DEPRECATED    = 0x1
ax.ENABLE_GL_STATE_CACHE    = 0x1
ax.ENABLE_PROFILERS = 0x0
ax.ENABLE_STACKABLE_ACTIONS = 0x1
ax.FIX_ARTIFACTS_BY_STRECHING_TEXEL = 0x0
ax.GL_ALL   = 0x0
ax.LABELATLAS_DEBUG_DRAW    = 0x0
ax.LABELBMFONT_DEBUG_DRAW   = 0x0
ax.MAC_USE_DISPLAY_LINK_THREAD  = 0x0
ax.MAC_USE_MAIN_THREAD  = 0x2
ax.MAC_USE_OWN_THREAD   = 0x1
ax.NODE_RENDER_SUBPIXEL = 0x1
ax.PVRMIPMAP_MAX    = 0x10
ax.SPRITEBATCHNODE_RENDER_SUBPIXEL  = 0x1
ax.SPRITE_DEBUG_DRAW    = 0x0
ax.TEXTURE_ATLAS_USE_TRIANGLE_STRIP = 0x0
ax.TEXTURE_ATLAS_USE_VAO    = 0x1
ax.USE_L_A88_LABELS = 0x1
ax.ACTION_TAG_INVALID   = -1
ax.DEVICE_MAC   = 0x6
ax.DEVICE_MAC_RETINA_DISPLAY    = 0x7
ax.DEVICEI_PAD  = 0x4
ax.DEVICEI_PAD_RETINA_DISPLAY   = 0x5
ax.DEVICEI_PHONE    = 0x0
ax.DEVICEI_PHONE5   = 0x2
ax.DEVICEI_PHONE5_RETINA_DISPLAY    = 0x3
ax.DEVICEI_PHONE_RETINA_DISPLAY = 0x1
ax.DIRECTOR_PROJECTION2_D   = 0x0
ax.DIRECTOR_PROJECTION3_D   = 0x1
ax.DIRECTOR_PROJECTION_CUSTOM   = 0x2
ax.DIRECTOR_PROJECTION_DEFAULT  = 0x1
ax.FILE_UTILS_SEARCH_DIRECTORY_MODE = 0x1
ax.FILE_UTILS_SEARCH_SUFFIX_MODE    = 0x0
ax.FLIPED_ALL   = 0xe0000000
ax.FLIPPED_MASK = 0x1fffffff
ax.IMAGE_FORMAT_JPEG    = 0x0
ax.IMAGE_FORMAT_PNG = 0x1
ax.ITEM_SIZE    = 0x20
ax.LABEL_AUTOMATIC_WIDTH    = -1
ax.LINE_BREAK_MODE_CHARACTER_WRAP   = 0x1
ax.LINE_BREAK_MODE_CLIP = 0x2
ax.LINE_BREAK_MODE_HEAD_TRUNCATION  = 0x3
ax.LINE_BREAK_MODE_MIDDLE_TRUNCATION    = 0x5
ax.LINE_BREAK_MODE_TAIL_TRUNCATION  = 0x4
ax.LINE_BREAK_MODE_WORD_WRAP    = 0x0
ax.MAC_VERSION_10_6 = 0xa060000
ax.MAC_VERSION_10_7 = 0xa070000
ax.MAC_VERSION_10_8 = 0xa080000
ax.MENU_HANDLER_PRIORITY    = -128
ax.MENU_STATE_TRACKING_TOUCH    = 0x1
ax.MENU_STATE_WAITING   = 0x0
ax.NODE_TAG_INVALID = -1
ax.PARTICLE_DURATION_INFINITY   = -1
ax.PARTICLE_MODE_GRAVITY    = 0x0
ax.PARTICLE_MODE_RADIUS = 0x1
ax.PARTICLE_START_RADIUS_EQUAL_TO_END_RADIUS    = -1
ax.PARTICLE_START_SIZE_EQUAL_TO_END_SIZE    = -1
ax.POSITION_TYPE_FREE   = 0x0
ax.POSITION_TYPE_GROUPED    = 0x2
ax.POSITION_TYPE_RELATIVE   = 0x1
ax.PRIORITY_NON_SYSTEM_MIN  = -2147483647
ax.PRIORITY_SYSTEM  = -2147483648
ax.PROGRESS_TIMER_TYPE_BAR  = 0x1
ax.PROGRESS_TIMER_TYPE_RADIAL   = 0x0
ax.REPEAT_FOREVER   = 0xfffffffe
ax.RESOLUTION_MAC   = 0x1
ax.RESOLUTION_MAC_RETINA_DISPLAY    = 0x2
ax.RESOLUTION_UNKNOWN   = 0x0
ax.TMX_TILE_DIAGONAL_FLAG   = 0x20000000
ax.TMX_TILE_HORIZONTAL_FLAG = 0x80000000
ax.TMX_TILE_VERTICAL_FLAG   = 0x40000000
ax.TEXT_ALIGNMENT_CENTER    = 0x1
ax.TEXT_ALIGNMENT_LEFT  = 0x0
ax.TEXT_ALIGNMENT_RIGHT = 0x2

ax.TEXTURE_PF_PVRTC4 = 0
ax.TEXTURE_PF_PVRTC4A = 1
ax.TEXTURE_PF_PVRTC2 = 2
ax.TEXTURE_PF_PVRTC2A = 3
ax.TEXTURE_PF_ETC1 = 4
ax.TEXTURE_PF_ETC2_RGB = 5
ax.TEXTURE_PF_ETC2_RGBA = 6
ax.TEXTURE_PF_S3TC_DXT1 = 7
ax.TEXTURE_PF_S3TC_DXT3 = 8
ax.TEXTURE_PF_S3TC_DXT5 = 9
ax.TEXTURE_PF_ATC_RGB = 10
ax.TEXTURE_PF_ATC_EXPLICIT_ALPHA = 11
ax.TEXTURE_PF_ATC_INTERPOLATED_ALPHA = 12
ax.TEXTURE_PF_ASTC4x4 = 13  -- !< ASTC 4x4 8.0 BPP
ax.TEXTURE_PF_ASTC5x4 = 14  -- !< ASTC 5x4 6.40 BPP
ax.TEXTURE_PF_ASTC5x5 = 15  -- !< ASTC 5x5 5.12 BPP
ax.TEXTURE_PF_ASTC6x5 = 16  -- !< ASTC 6x5 4.27 BPP
ax.TEXTURE_PF_ASTC6x6 = 17  -- !< ASTC 6x6 3.56 BPP
ax.TEXTURE_PF_ASTC8x5 = 18  -- !< ASTC 8x5 3.20 BPP
ax.TEXTURE_PF_ASTC8x6 = 19  -- !< ASTC 8x6 2.67 BPP
ax.TEXTURE_PF_ASTC8x8 = 20  -- !< ASTC 8x8 2.0 BPP
ax.TEXTURE_PF_ASTC10x5 = 21 -- !< ASTC 10x5 2.56 BPP
ax.TEXTURE_PF_ASTC10x6 = 22 -- !< ASTC 10x6 2.13 BPP
ax.TEXTURE_PF_ASTC10x8 = 23 -- !< ASTC 10x8 1.60 BPP
ax.TEXTURE_PF_ASTC10x10 = 24 -- !< ASTC 10x10 1.28 BPP
ax.TEXTURE_PF_ASTC12x10 = 25 -- !< ASTC 12x10 1.07 BPP
ax.TEXTURE_PF_ASTC12x12 = 26 -- !< ASTC 12x12 0.89 BPP
ax.TEXTURE_PF_RGBA8 = 27
ax.TEXTURE_PF_BGRA8 = 28
ax.TEXTURE_PF_RGB8 = 29
ax.TEXTURE_PF_RGB565 = 30  -- !render as BGR565
ax.TEXTURE_PF_RGBA4 = 31  -- !render as ABGR4
ax.TEXTURE_PF_RGB5A1 = 32  -- !render as BGR5A1
ax.TEXTURE_PF_R8 = 33
ax.TEXTURE_PF_RG8 = 34
ax.TEXTURE_PF_RGBA32F = 35
ax.TEXTURE_PF_D24S8 = 36
ax.TEXTURE_PF_COUNT = 37
ax.TEXTURE_PF_NONE = 0xffff

ax.TOUCHES_ALL_AT_ONCE  = 0x0
ax.TOUCHES_ONE_BY_ONE   = 0x1
ax.TRANSITION_ORIENTATION_DOWN_OVER = 0x1
ax.TRANSITION_ORIENTATION_LEFT_OVER = 0x0
ax.TRANSITION_ORIENTATION_RIGHT_OVER    = 0x1
ax.TRANSITION_ORIENTATION_UP_OVER   = 0x0
ax.UNIFORM_COS_TIME = 0x5
ax.UNIFORM_MV_MATRIX    = 0x1
ax.UNIFORM_MVP_MATRIX   = 0x2
ax.UNIFORM_P_MATRIX = 0x0
ax.UNIFORM_RANDOM01 = 0x6
ax.UNIFORM_SAMPLER  = 0x7
ax.UNIFORM_SIN_TIME = 0x4
ax.UNIFORM_TIME = 0x3
ax.UNIFORM_COUNT  = 0x8
ax.VERTEX_ATTRIB_FLAG_COLOR = 0x2
ax.VERTEX_ATTRIB_FLAG_NONE  = 0x0
ax.VERTEX_ATTRIB_FLAG_POS_COLOR_TEX = 0x7
ax.VERTEX_ATTRIB_FLAG_POSITION  = 0x1
ax.VERTEX_ATTRIB_FLAG_TEX_COORDS    = 0x4
ax.VERTEX_ATTRIB_COLOR  = 0x1
ax.VERTEX_ATTRIB_MAX    = 0x3
ax.VERTEX_ATTRIB_POSITION   = 0x0
ax.VERTEX_ATTRIB_TEX_COORD = 0x2

ax.VERTEX_ATTRIB_TEX_COORDS = 0x2
ax.VERTICAL_TEXT_ALIGNMENT_BOTTOM   = 0x2
ax.VERTICAL_TEXT_ALIGNMENT_CENTER   = 0x1
ax.VERTICAL_TEXT_ALIGNMENT_TOP  = 0x0
ax.OS_VERSION_4_0   = 0x4000000
ax.OS_VERSION_4_0_1 = 0x4000100
ax.OS_VERSION_4_1   = 0x4010000
ax.OS_VERSION_4_2   = 0x4020000
ax.OS_VERSION_4_2_1 = 0x4020100
ax.OS_VERSION_4_3   = 0x4030000
ax.OS_VERSION_4_3_1 = 0x4030100
ax.OS_VERSION_4_3_2 = 0x4030200
ax.OS_VERSION_4_3_3 = 0x4030300
ax.OS_VERSION_4_3_4 = 0x4030400
ax.OS_VERSION_4_3_5 = 0x4030500
ax.OS_VERSION_5_0   = 0x5000000
ax.OS_VERSION_5_0_1 = 0x5000100
ax.OS_VERSION_5_1_0 = 0x5010000
ax.OS_VERSION_6_0_0 = 0x6000000
ax.ANIMATION_FRAME_DISPLAYED_NOTIFICATION   = 'axAnimationFrameDisplayedNotification'
ax.CHIPMUNK_IMPORT  = 'chipmunk.h'
ax.ATTRIBUTE_NAME_COLOR = 'a_color'
ax.ATTRIBUTE_NAME_POSITION  = 'a_position'
ax.ATTRIBUTE_NAME_TEX_COORD = 'a_texCoord'
ax.SHADER_POSITION_COLOR    = 'ShaderPositionColor'
ax.SHADER_POSITION_LENGTH_TEXURE_COLOR  = 'ShaderPositionLengthTextureColor'
ax.SHADER_POSITION_TEXTURE  = 'ShaderPositionTexture'
ax.SHADER_POSITION_TEXTURE_A8_COLOR = 'ShaderPositionTextureA8Color'
ax.SHADER_POSITION_TEXTURE_COLOR    = 'ShaderPositionTextureColor'
ax.SHADER_POSITION_TEXTURE_COLOR_ALPHA_TEST = 'ShaderPositionTextureColorAlphaTest'
ax.SHADER_POSITION_TEXTURE_U_COLOR  = 'ShaderPositionTexture_uColor'
ax.SHADER_POSITION_U_COLOR  = 'ShaderPosition_uColor'
ax.UNIFORM_ALPHA_TEST_VALUE_S   = 'AX_AlphaValue'
ax.UNIFORM_COS_TIME_S   = 'AX_CosTime'
ax.UNIFORM_MV_MATRIX_S  = 'AX_MVMatrix'
ax.UNIFORM_MVP_MATRIX_S = 'AX_MVPMatrix'
ax.UNIFORM_P_MATRIX_S   = 'AX_PMatrix'
ax.UNIFORM_RANDOM01_S   = 'AX_Random01'
ax.UNIFORM_SAMPLER_S    = 'AX_Texture0'
ax.UNIFORM_SIN_TIME_S   = 'AX_SinTime'
ax.UNIFORM_TIME_S   = 'AX_Time'

-- refer to: ApplicationBase.h: enum class Platform
ax.PLATFORM_UNKNOWN   = 0
ax.PLATFORM_WIN32     = 1
ax.PLATFORM_WINUWP    = 2
ax.PLATFORM_LINUX     = 3
ax.PLATFORM_OSX       = 4
ax.PLATFORM_ANDROID   = 5
ax.PLATFORM_IOS       = 6
ax.PLATFORM_TVOS      = 7
ax.PLATFORM_WASM      = 8
-- iPAD device of iOS, TODO: provide API: isIPad()

-- platform alias
ax.PLATFORM_WINDOWS    = ax.PLATFORM_WIN32
ax.PLATFORM_MACOS      = ax.PLATFORM_OSX
ax.PLATFORM_MAC        = ax.PLATFORM_OSX
ax.PLATFORM_EMSCRIPTEN = ax.PLATFORM_WASM
ax.PLATFORM_IPHONE     = ax.PLATFORM_IOS
ax.PLATFORM_IPAD       = ax.PLATFORM_IOS
ax.PLATFORM_UWP        = ax.PLATFORM_WINUWP
ax.PLATFORM_WINRT      = ax.PLATFORM_WINUWP

ax.LANGUAGE_ENGLISH    = 0
ax.LANGUAGE_CHINESE    = 1
ax.LANGUAGE_FRENCH     = 2
ax.LANGUAGE_ITALIAN    = 3
ax.LANGUAGE_GERMAN     = 4
ax.LANGUAGE_SPANISH    = 5
ax.LANGUAGE_DUTCH      = 6
ax.LANGUAGE_RUSSIAN    = 7
ax.LANGUAGE_KOREAN     = 8
ax.LANGUAGE_JAPANESE   = 9
ax.LANGUAGE_HUNGARIAN  = 10
ax.LANGUAGE_PORTUGUESE = 11
ax.LANGUAGE_ARABIC     = 12
ax.LANGUAGE_NORWEGIAN  = 13
ax.LANGUAGE_POLISH     = 14
ax.LANGUAGE_TURKISH    = 15
ax.LANGUAGE_UKRAINIAN  = 16
ax.LANGUAGE_ROMANIAN   = 17
ax.LANGUAGE_BULGARIAN  = 18
ax.LANGUAGE_BELARUSIAN = 19

ax.NODE_ON_ENTER       = 0
ax.NODE_ON_EXIT        = 1
ax.NODE_ON_ENTER_TRANSITION_DID_FINISH = 2
ax.NODE_ON_EXIT_TRANSITION_DID_START   = 3
ax.NODE_ON_CLEAN_UP    = 4

ax.Handler = ax.Handler or {}
ax.Handler.NODE            = 0
ax.Handler.MENU_CLICKED    = 1
ax.Handler.CALLFUNC        = 2
ax.Handler.SCHEDULE        = 3
ax.Handler.TOUCHES         = 4
ax.Handler.KEYPAD          = 5
ax.Handler.ACCELEROMETER   = 6
ax.Handler.CONTROL_TOUCH_DOWN = 7
ax.Handler.CONTROL_TOUCH_DRAG_INSIDE = 8
ax.Handler.CONTROL_TOUCH_DRAG_OUTSIDE = 9
ax.Handler.CONTROL_TOUCH_DRAG_ENTER = 10
ax.Handler.CONTROL_TOUCH_DRAG_EXIT  = 11
ax.Handler.CONTROL_TOUCH_UP_INSIDE  = 12
ax.Handler.CONTROL_TOUCH_UP_OUTSIDE = 13
ax.Handler.CONTROL_TOUCH_UP_CANCEL  = 14
ax.Handler.CONTROL_VALUE_CHANGED    = 15
ax.Handler.WEBSOCKET_OPEN           = 16
ax.Handler.WEBSOCKET_MESSAGE        = 17
ax.Handler.WEBSOCKET_CLOSE          = 18
ax.Handler.WEBSOCKET_ERROR          = 19
ax.Handler.GL_NODE_DRAW             = 20
ax.Handler.SCROLLVIEW_SCROLL        = 21
ax.Handler.SCROLLVIEW_ZOOM          = 22
ax.Handler.TABLECELL_TOUCHED        = 23
ax.Handler.TABLECELL_HIGHLIGHT      = 24
ax.Handler.TABLECELL_UNHIGHLIGHT    = 25
ax.Handler.TABLECELL_WILL_RECYCLE   = 26
ax.Handler.TABLECELL_SIZE_FOR_INDEX = 27
ax.Handler.TABLECELL_AT_INDEX       = 28
ax.Handler.TABLEVIEW_NUMS_OF_CELLS  = 29
ax.Handler.HTTPREQUEST_STATE_CHANGE = 30
ax.Handler.ASSETSMANAGER_PROGRESS = 31
ax.Handler.ASSETSMANAGER_SUCCESS  = 32
ax.Handler.ASSETSMANAGER_ERROR    = 33
ax.Handler.STUDIO_EVENT_LISTENER  = 34
ax.Handler.ARMATURE_EVENT         = 35
ax.Handler.EVENT_ACC              = 36
ax.Handler.EVENT_CUSTIOM          = 37
ax.Handler.EVENT_KEYBOARD_PRESSED = 38
ax.Handler.EVENT_KEYBOARD_RELEASED = 39
ax.Handler.EVENT_TOUCH_BEGAN      = 40
ax.Handler.EVENT_TOUCH_MOVED      = 41
ax.Handler.EVENT_TOUCH_ENDED      = 42
ax.Handler.EVENT_TOUCH_CANCELLED  = 43
ax.Handler.EVENT_TOUCHES_BEGAN    = 44
ax.Handler.EVENT_TOUCHES_MOVED    = 45
ax.Handler.EVENT_TOUCHES_ENDED    = 46
ax.Handler.EVENT_TOUCHES_CANCELLED = 47
ax.Handler.EVENT_MOUSE_DOWN       = 48
ax.Handler.EVENT_MOUSE_UP         = 49
ax.Handler.EVENT_MOUSE_MOVE       = 50
ax.Handler.EVENT_MOUSE_SCROLL     = 51
ax.Handler.EVENT_SPINE            = 52
ax.Handler.EVENT_PHYSICS_CONTACT_BEGIN = 53
ax.Handler.EVENT_PHYSICS_CONTACT_PRESOLVE = 54
ax.Handler.EVENT_PHYSICS_CONTACT_POSTSOLVE = 55
ax.Handler.EVENT_PHYSICS_CONTACT_SEPARATE = 56
ax.Handler.EVENT_FOCUS = 57
ax.Handler.EVENT_CONTROLLER_CONNECTED = 58
ax.Handler.EVENT_CONTROLLER_DISCONNECTED = 59
ax.Handler.EVENT_CONTROLLER_KEYDOWN = 60
ax.Handler.EVENT_CONTROLLER_KEYUP = 61
ax.Handler.EVENT_CONTROLLER_KEYREPEAT = 62
ax.Handler.EVENT_CONTROLLER_AXIS = 63
ax.Handler.EVENT_SPINE_ANIMATION_START = 64
ax.Handler.EVENT_SPINE_ANIMATION_END = 65
ax.Handler.EVENT_SPINE_ANIMATION_COMPLETE = 66
ax.Handler.EVENT_SPINE_ANIMATION_EVENT = 67


ax.EVENT_UNKNOWN = 0
ax.EVENT_TOUCH_ONE_BY_ONE      = 1
ax.EVENT_TOUCH_ALL_AT_ONCE     = 2
ax.EVENT_KEYBOARD              = 3
ax.EVENT_MOUSE                 = 4
ax.EVENT_ACCELERATION          = 5
ax.EVENT_CUSTOM                = 6

ax.PHYSICSSHAPE_MATERIAL_DEFAULT = {density = 0.0, restitution = 0.5, friction = 0.5}
ax.PHYSICSBODY_MATERIAL_DEFAULT = {density = 0.1, restitution = 0.5, friction = 0.5}
ax.GLYPHCOLLECTION_DYNAMIC = 0
ax.GLYPHCOLLECTION_NEHE    = 1
ax.GLYPHCOLLECTION_ASCII   = 2
ax.GLYPHCOLLECTION_CUSTOM  = 3

ax.ResolutionPolicy =
{
    EXACT_FIT = 0,
    NO_BORDER = 1,
    SHOW_ALL  = 2,
    FIXED_HEIGHT  = 3,
    FIXED_WIDTH  = 4,
    UNKNOWN  = 5,
}

ax.LabelEffect =
{
    NORMAL  = 0,
    OUTLINE = 1,
    SHADOW  = 2,
    GLOW    = 3,
}

ax.LabelOverflow =
{
    NONE = 0,
    CLAMP = 1,
    SHRINK = 2,
    RESIZE_HEIGHT = 3
};

ax.KeyCodeKey =
{
    "KEY_NONE",
    "KEY_PAUSE",
    "KEY_SCROLL_LOCK",
    "KEY_PRINT",
    "KEY_SYSREQ",
    "KEY_BREAK",
    "KEY_ESCAPE",
    "KEY_BACKSPACE",
    "KEY_TAB",
    "KEY_BACK_TAB",
    "KEY_RETURN",
    "KEY_CAPS_LOCK",
    "KEY_SHIFT",
    "KEY_RIGHT_SHIFT",
    "KEY_CTRL",
    "KEY_RIGHT_CTRL",
    "KEY_ALT",
    "KEY_RIGHT_ALT",
    "KEY_MENU",
    "KEY_HYPER",
    "KEY_INSERT",
    "KEY_HOME",
    "KEY_PG_UP",
    "KEY_DELETE",
    "KEY_END",
    "KEY_PG_DOWN",
    "KEY_LEFT_ARROW",
    "KEY_RIGHT_ARROW",
    "KEY_UP_ARROW",
    "KEY_DOWN_ARROW",
    "KEY_NUM_LOCK",
    "KEY_KP_PLUS",
    "KEY_KP_MINUS",
    "KEY_KP_MULTIPLY",
    "KEY_KP_DIVIDE",
    "KEY_KP_ENTER",
    "KEY_KP_HOME",
    "KEY_KP_UP",
    "KEY_KP_PG_UP",
    "KEY_KP_LEFT",
    "KEY_KP_FIVE",
    "KEY_KP_RIGHT",
    "KEY_KP_END",
    "KEY_KP_DOWN",
    "KEY_KP_PG_DOWN",
    "KEY_KP_INSERT",
    "KEY_KP_DELETE",
    "KEY_F1",
    "KEY_F2",
    "KEY_F3",
    "KEY_F4",
    "KEY_F5",
    "KEY_F6",
    "KEY_F7",
    "KEY_F8",
    "KEY_F9",
    "KEY_F10",
    "KEY_F11",
    "KEY_F12",
    "KEY_SPACE",
    "KEY_EXCLAM",
    "KEY_QUOTE",
    "KEY_NUMBER",
    "KEY_DOLLAR",
    "KEY_PERCENT",
    "KEY_CIRCUMFLEX",
    "KEY_AMPERSAND",
    "KEY_APOSTROPHE",
    "KEY_LEFT_PARENTHESIS",
    "KEY_RIGHT_PARENTHESIS",
    "KEY_ASTERISK",
    "KEY_PLUS",
    "KEY_COMMA",
    "KEY_MINUS",
    "KEY_PERIOD",
    "KEY_SLASH",
    "KEY_0",
    "KEY_1",
    "KEY_2",
    "KEY_3",
    "KEY_4",
    "KEY_5",
    "KEY_6",
    "KEY_7",
    "KEY_8",
    "KEY_9",
    "KEY_COLON",
    "KEY_SEMICOLON",
    "KEY_LESS_THAN",
    "KEY_EQUAL",
    "KEY_GREATER_THAN",
    "KEY_QUESTION",
    "KEY_AT",
    "KEY_CAPITAL_A",
    "KEY_CAPITAL_B",
    "KEY_CAPITAL_C",
    "KEY_CAPITAL_D",
    "KEY_CAPITAL_E",
    "KEY_CAPITAL_F",
    "KEY_CAPITAL_G",
    "KEY_CAPITAL_H",
    "KEY_CAPITAL_I",
    "KEY_CAPITAL_J",
    "KEY_CAPITAL_K",
    "KEY_CAPITAL_L",
    "KEY_CAPITAL_M",
    "KEY_CAPITAL_N",
    "KEY_CAPITAL_O",
    "KEY_CAPITAL_P",
    "KEY_CAPITAL_Q",
    "KEY_CAPITAL_R",
    "KEY_CAPITAL_S",
    "KEY_CAPITAL_T",
    "KEY_CAPITAL_U",
    "KEY_CAPITAL_V",
    "KEY_CAPITAL_W",
    "KEY_CAPITAL_X",
    "KEY_CAPITAL_Y",
    "KEY_CAPITAL_Z",
    "KEY_LEFT_BRACKET",
    "KEY_BACK_SLASH",
    "KEY_RIGHT_BRACKET",
    "KEY_UNDERSCORE",
    "KEY_GRAVE",
    "KEY_A",
    "KEY_B",
    "KEY_C",
    "KEY_D",
    "KEY_E",
    "KEY_F",
    "KEY_G",
    "KEY_H",
    "KEY_I",
    "KEY_J",
    "KEY_K",
    "KEY_L",
    "KEY_M",
    "KEY_N",
    "KEY_O",
    "KEY_P",
    "KEY_Q",
    "KEY_R",
    "KEY_S",
    "KEY_T",
    "KEY_U",
    "KEY_V",
    "KEY_W",
    "KEY_X",
    "KEY_Y",
    "KEY_Z",
    "KEY_LEFT_BRACE",
    "KEY_BAR",
    "KEY_RIGHT_BRACE",
    "KEY_TILDE",
    "KEY_EURO",
    "KEY_POUND",
    "KEY_YEN",
    "KEY_MIDDLE_DOT",
    "KEY_SEARCH",
    "KEY_DPAD_LEFT",
    "KEY_DPAD_RIGHT",
    "KEY_DPAD_UP",
    "KEY_DPAD_DOWN",
    "KEY_DPAD_CENTER",
    "KEY_ENTER",
    "KEY_PLAY",
}

ax.KeyCode =
{
}

for k,v in ipairs(ax.KeyCodeKey) do
    ax.KeyCode[v] = k - 1
end

ax.KeyCode.KEY_BACK = ax.KeyCode.KEY_ESCAPE
ax.KeyCode.KEY_LEFT_SHIFT = ax.KeyCode.KEY_SHIFT
ax.KeyCode.KEY_LEFT_CTRL  = ax.KeyCode.KEY_CTRL
ax.KeyCode.KEY_LEFT_ALT   = ax.KeyCode.KEY_ALT

ax.EventAssetsManagerEx =
{
    EventCode =
    {
        ERROR_NO_LOCAL_MANIFEST = 0,
        ERROR_DOWNLOAD_MANIFEST = 1,
        ERROR_PARSE_MANIFEST = 2,
        NEW_VERSION_FOUND = 3,
        ALREADY_UP_TO_DATE = 4,
        UPDATE_PROGRESSION = 5,
        ASSET_UPDATED = 6,
        ERROR_UPDATING = 7,
        UPDATE_FINISHED = 8,
        UPDATE_FAILED = 9,
        ERROR_DECOMPRESS = 10
    },
}

ax.AssetsManagerExStatic =
{
    VERSION_ID  = "@version",
    MANIFEST_ID = "@manifest",
}

ax.EventCode =
{
    BEGAN = 0,
    MOVED = 1,
    ENDED = 2,
    CANCELLED = 3,
}

ax.DIRECTOR_PROJECTION_2D = 0
ax.DIRECTOR_PROJECTION_3D = 1

ax.ConfigType =
{
    NONE = 0,
    COCOSTUDIO = 1,
}

ax.AUDIO_INVAILD_ID   = -1
ax.AUDIO_TIME_UNKNOWN  = -1.0

ax.CameraFlag =
{
    DEFAULT = 1,
    USER1 = 2,
    USER2 = 4,
    USER3 = 8,
    USER4 = 16,
    USER5 = 32,
    USER6 = 64,
    USER7 = 128,
    USER8 = 256,
}

ax.CameraBackgroundBrush.BrushType =
{
    NONE = 0,
    DEPTH = 1,
    COLOR = 2,
    SKYBOX = 3,
}

ax.BillBoard_Mode =
{
    VIEW_POINT_ORIENTED = 0,
    VIEW_PLANE_ORIENTED = 1,
}

ax.GLProgram_VERTEX_ATTRIB =
{
    POSITION = 0,
    COLOR = 1,
    TEX_COORD = 2,
    TEX_COORD1 = 3,
    TEX_COORD2 = 4,
    TEX_COORD3 = 5,
    TEX_COORD4 = 6,
    TEX_COORD5 = 7,
    TEX_COORD6 = 8,
    TEX_COORD7 = 9,
    NORMAL = 10,
    BLEND_WEIGHT = 11,
    BLEND_INDEX =12,
    MAX = 13,
    --backward compatibility
    TEX_COORDS = 2,
}

ax.MATRIX_STACK_TYPE =
{
    MODELVIEW = 0,
    PROJECTION = 1,
    TEXTURE = 2,
}

ax.LightType =
{
    DIRECTIONAL = 0,
    POINT = 1,
    SPOT = 2,
    AMBIENT = 3,
}

ax.LightFlag =
{
    LIGHT0  = math.pow(2,0),
    LIGHT1  = math.pow(2,1),
    LIGHT2  = math.pow(2,2),
    LIGHT3  = math.pow(2,3),
    LIGHT4  = math.pow(2,4),
    LIGHT5  = math.pow(2,5),
    LIGHT6  = math.pow(2,6),
    LIGHT7  = math.pow(2,7),
    LIGHT8  = math.pow(2,8),
    LIGHT9  = math.pow(2,9),
    LIGHT10 = math.pow(2,10),
    LIGHT11 = math.pow(2,11),
    LIGHT12 = math.pow(2,12),
    LIGHT13 = math.pow(2,13),
    LIGHT14 = math.pow(2,14),
    LIGHT15 = math.pow(2,15),
}

ax.RED = ax.color32(255,0,0)
ax.GREEN = ax.color32(0,255,0)
ax.BLUE = ax.color32(0,0,255)
ax.BLACK = ax.color32(0,0,0)
ax.WHITE = ax.color32(255,255,255)
ax.YELLOW = ax.color32(255,255,0)

